Plug and Play (PnP) is a combination of hardware and software support that enables a computer system to recognize and adapt to hardware configuration changes in devices/components interfaced with the system with little or no user intervention. With Plug and Play, a user can add or remove devices dynamically, without manual configuration and without any intricate knowledge of computer hardware. For example, a user can dock a PDA or laptop and use the docking station's Ethernet card to connect to a network without changing the configuration settings for the connected device. Subsequently, the user can undock the same PDA or laptop and use a modem to connect to the network without having to make any manual configuration changes.
Plug and play events for devices connected to a computer are typically handled by the operating system of the system with which the device is communicating. For example, a PDA tethered to a PC would have its events handled by the PC OS. The system is able to automatically load and unload device drivers to reflect the different devices attached to the system when they are docked or undocked. Also, applications are able to automatically adjust their configurations to reflect the insertion or removal of devices, e.g., PDAs. Plug and Play allows a user to change a computer's configuration with the assurance that all devices will work together and that the machine will boot correctly after the changes are made.
Unfortunately, the conventional method of handling Plug and Play events (such as “device arrival” and “device removal”) does not work particularly well where the new device is communicating with a client system connected to a server in a server-based computing system. The client system in a server-based computing system is frequently in contact with the server system over a network via a presentation level protocol supporting a user session executing on the server. The server system deploys, manages, supports and executes applications on the servers thereby relieving the client system of the need to host and execute the applications. The server deploys a presentation level protocol and architecture such as the Independent Computing Architecture (ICA) from Citrix Systems Inc. of Fort Lauderdale, Fla., the Remote Desktop Protocol (RDP) from Microsoft Corporation of Redmond, Wash. and the X-Window Protocol from the X-Open Consortium. A user connected to the client system who wishes to execute an application or access resources on the server is connected in a dedicated session to the server. Conventionally however, the Plug and Play manager for the operating system of the client system handles any messages generated by devices connecting to, or removing from, the client system and the generated events do not impact the existing user session. As a result devices communicating with the client which wish to synchronize data with data available in the user session hosted by the server (e.g.: synchronize calendar entries in OUTLOOK by Microsoft Corporation) are unable to do so as the device is mapped to the client system.